#include <stdio.h>
#include <string.h>
#include <sys/types.h>
#include <unistd.h>
#include <stdlib.h>

#define SIZE 1024
#define Max_Argc 64
#define SEP " "
char* argv[Max_Argc];


const char* Getname(const char* name)//获取名字
{
  char* getname=getenv(name);
  if(getname)
  {
    return getname;
  }
  else
  {
    return "None";
  }
}

const char* HostName()//获取主机名
{
  return Getname("HOSTNAME");
}

const char* Username()//获取用户名
{
  return Getname("USER");
}

const char* CurrentWorkDir()//获取工作目录
{
  return Getname("PWD");
}

void Interactive(char out[],int size)
{
  printf("[%s@%s %s]$ ",Username(),HostName(),CurrentWorkDir());
  fgets(out,size,stdin);
  out[strlen(out)-1]=0;
  printf("test: %s\n",out);   
}

void Split(char in[])
{  
  int i=0;
  argv[i++]=strtok(in,SEP);
  while(argv[i++]=strtok(NULL,SEP));
}

void worker()//执行
{ 
  char commandline[SIZE];
  Interactive(commandline,SIZE);//获取用户输入命令字符串
  Split(commandline);
  //for(int i=0;argv[i];i++)
  //{
  //  printf("argv[%d]:%s\n",i,argv[i]);
  //}
}

int main()
{
  worker();
  return 0;
}
